# Руководство по установке

# Подготовка

Убедитесь, что у Вас есть кластер Kubernetes и настроенный Kubeconfig для взаимодействия с ним.

## Создание проекта

Придумайте имя проекта:

```shell
ns=<Имя проекта для установки Kubelatte>
```

Выполните команду:

```shell
kubectl create namespace $ns
```


## Генерация сертификата

Сгенерируйте самоподписанный сертификат:

Можно использовать скрипт приведенный ниже, параметр скрипта доменный адрес сервиса Kubelatte (`'kubelatte-ce-service.'$ns'.svc'`)

```shell
mkdir certs
cd certs


openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=example Inc./CN=example.com' -keyout ca.key -out ca.crt


echo "subjectAltName = DNS:$1" > san.ext


openssl req -out $1.csr -newkey rsa:2048 -nodes -keyout $1.key -subj "/CN=$1/O=httpbin organization"
openssl x509 -req -sha256 -days 365 -CA ca.crt -CAkey ca.key -set_serial 0 -in $1.csr -out $1.crt -extfile san.ext

base64 -i $1.key -o encodedkey.txt
base64 -i ca.crt -o encodedca.txt
base64 -i $1.crt -o encodedcert.txt
```

# Установка

## Заполнение values

Необходимо подставить сгенеренные сертификаты в соответствующие поля в рамки [values.yaml](../../charts/kubelatte-chart/values.yaml)

```yaml
webhookConfigs:
  auth:
    tls:
      certBase64: ...
      keyBase64: ...
      caCertBase64: ...
```

## Установка Helm Chart на кластер

```shell
helm install kubelatte charts/kubelatte-chart --namespace $ns
```

## Подключение проектов к Kubelatte

```shell
kubectl label namespace <имя подключаемого проекта> kubealtte-injection=enabled
```

Теперь на данном проекте будет работать Kubelatte!

Enjoy Kubernetes as a cup of Latte!